
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<HTML>

<HEAD>
   <TITLE>lparse_c</TITLE>
</HEAD>

<BODY style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<A name="TOP"></A>

<table style="text-align: left; margin-left: auto; margin-right: auto; width: 800px;"
 border="0" cellpadding="5" cellspacing="2">
  <tbody>
    <tr>
      <td style="background-color: rgb(153, 153, 153); vertical-align: middle; text-align: center;">
      <div align="right"> 
      <small><small><a href="index.html">Index Page</a></small></small>
      </div>
      <b>lparse_c</b> </td>
    </tr>

    <tr>
      <td style="vertical-align: top;">

<small><div align="center">
<A HREF="index.html#A">A</A>&nbsp;
<A HREF="index.html#B">B</A>&nbsp;
<A HREF="index.html#C">C</A>&nbsp;
<A HREF="index.html#D">D</A>&nbsp;
<A HREF="index.html#E">E</A>&nbsp;
<A HREF="index.html#F">F</A>&nbsp;
<A HREF="index.html#G">G</A>&nbsp;
<A HREF="index.html#H">H</A>&nbsp;
<A HREF="index.html#I">I</A>&nbsp;
<A HREF="index.html#J">J</A>&nbsp;
<A HREF="index.html#K">K</A>&nbsp;
<A HREF="index.html#L">L</A>&nbsp;
<A HREF="index.html#M">M</A>&nbsp;
<A HREF="index.html#N">N</A>&nbsp;
<A HREF="index.html#O">O</A>&nbsp;
<A HREF="index.html#P">P</A>&nbsp;
<A HREF="index.html#Q">Q</A>&nbsp;
<A HREF="index.html#R">R</A>&nbsp;
<A HREF="index.html#S">S</A>&nbsp;
<A HREF="index.html#T">T</A>&nbsp;
<A HREF="index.html#U">U</A>&nbsp;
<A HREF="index.html#V">V</A>&nbsp;
<A HREF="index.html#W">W</A>&nbsp;
<A HREF="index.html#X">X</A>&nbsp;
</div></small>
       <br>
       <table style="text-align: left; width: 60%; margin-left: auto; margin-right: auto;"
       border="0" cellspacing="2" cellpadding="2">
        <tbody>
          <tr>
            <td style="width: 50%; text-align: center;">
            <small>
              <a href="#Procedure">Procedure<br></a>
              <a href="#Abstract">Abstract<br></a>
              <a href="#Required_Reading">Required_Reading<br></a>
              <a href="#Keywords">Keywords<br></a>
              <a href="#Brief_I/O">Brief_I/O<br></a>
              <a href="#Detailed_Input">Detailed_Input<br></a>

              </small>
              </td>
              <td style="vertical-align: top; width: 50%; text-align: center;">
              <small>               <a href="#Detailed_Output">Detailed_Output<br></a>
              <a href="#Parameters">Parameters<br></a>
              <a href="#Exceptions">Exceptions<br></a>
              <a href="#Files">Files<br></a>
              <a href="#Particulars">Particulars<br></a>
              <a href="#Examples">Examples<br></a>

              </small>
              </td>
              <td style="vertical-align: top; width: 50%; text-align: center;">
              <small>               <a href="#Restrictions">Restrictions<br></a>
              <a href="#Literature_References">Literature_References<br></a>
              <a href="#Author_and_Institution">Author_and_Institution<br></a>
              <a href="#Version">Version<br></a>
              <a href="#Index_Entries">Index_Entries<br></a>
             </small>
            </td>
          </tr>
        </tbody>
</table>

<h4><a name="Procedure">Procedure</a></h4>
<PRE>
   void lparse_c ( ConstSpiceChar   * list,
                   ConstSpiceChar   * delim,
                   SpiceInt           nmax,
                   SpiceInt           lenout,
                   SpiceInt         * n,
                   void             * items   ) 

</PRE>
<h4><a name="Abstract">Abstract</a></h4>
<PRE>
 
    Parse a list of items delimited by a single character. 
 </PRE>
<h4><a name="Required_Reading">Required_Reading</a></h4>
<PRE>
 
   None. 
 </PRE>
<h4><a name="Keywords">Keywords</a></h4>
<PRE>
 
    CHARACTER,  LIST,  PARSING,  STRING 
 

</PRE>
<h4><a name="Brief_I/O">Brief_I/O</a></h4>
<PRE>
 
    VARIABLE  I/O  DESCRIPTION 
    --------  ---  -------------------------------------------------- 
    list       I    List of items delimited by delim. 
    delim      I    Single character used to delimit items. 
    nmax       I    Maximum number of items to return. 
    lenout     I    Length of strings in item array.
    n          O    Number of items in the list. 
    items      O    Items in the list, left justified. 
 </PRE>
<h4><a name="Detailed_Input">Detailed_Input</a></h4>
<PRE>
 
    list        is a string containing a list of items delimited by the 
                single character delim. Consecutive delimiters, and 
                delimiters at the beginning and end of the list, are 
                considered to delimit empty items. A blank or empty
                list is considered to contain a single (empty) item. 
 
    delim       is the character delimiting the items in the list. 
                This may be any ASCII character, including a blank. 
                However, by definition, consecutive blanks are NOT 
                considered to be consecutive delimiters. In addition, 
                leading and trailing blanks are ignored. 
 
    nmax        is the maximum number of items to be returned from 
                the list. This allows the user to guard against 
                overflow from a list containing more items than 
                expected. 
                
    lenout      is the declared length of the strings in the string 
                array items.  This length must include room for the
                terminating null character in each string.
 </PRE>
<h4><a name="Detailed_Output">Detailed_Output</a></h4>
<PRE>
 
    n           is the number of items in the list. n may be 
                any number between one and nmax. n is always the 
                number of delimiters plus one. 
 
    items       is an array of strings containing the items in the list,
                left justified. Any item in the list to long to fit into 
                an element of items is truncated on the right.  Empty
                (null) or blank items in the input string are mapped to
                empty strings on output.
                
                items should be declared by the caller as:
                
                   SpiceCharitem [nmax][lenout]
 </PRE>
<h4><a name="Parameters">Parameters</a></h4>
<PRE>
 
   None. 
 </PRE>
<h4><a name="Exceptions">Exceptions</a></h4>
<PRE>
 
   1)  If nmax is less than one, then n will be set to zero, and no
       items will be returned.  This case is not an error.  The other
       exceptional cases can occur only if nmax &gt; 0.
       
   2)  The error SPICE(NULLPOINTER) is signaled if either the input or
       output string pointer is null.

   3)  If the output string length lenout is less than one, the error
       SPICE(STRINGTOOSHORT) will be signaled.
       
   4)  An empty input string will result in a single, empty output 
       token.  This case is not an error.
   </PRE>
<h4><a name="Files">Files</a></h4>
<PRE>
 
   None. 
 </PRE>
<h4><a name="Particulars">Particulars</a></h4>
<PRE>
 
   None. 
 </PRE>
<h4><a name="Examples">Examples</a></h4>
<PRE>
 
   The following examples illustrate the operation of <b>lparse_c</b>. 

   1) Let 
            LIST  = &quot;  A number of words   separated   by spaces   &quot; 
            DELIM = &quot; &quot; 
            nmax  = 20 

      Then 
            ITEMS[0] = &quot;A&quot; 
            ITEMS[1] = &quot;number&quot; 
            ITEMS[2] = &quot;of&quot; 
            ITEMS[3] = &quot;words&quot; 
            ITEMS[4] = &quot;separated&quot; 
            ITEMS[5] = &quot;by&quot; 
            ITEMS[6] = &quot;spaces&quot; 

   2) Let 
            LIST  = &quot;//option1//option2/ //&quot; 
            DELIM = &quot;/&quot; 
            nmax  = 20 

      Then 
            ITEMS[0] = &quot;&quot; 
            ITEMS[1] = &quot;&quot; 
            ITEMS[2] = &quot;option1&quot; 
            ITEMS[3] = &quot;&quot; 
            ITEMS[4] = &quot;option2&quot; 
            ITEMS[5] = &quot;&quot; 
            ITEMS[6] = &quot;&quot; 
            ITEMS[7] = &quot;&quot; 

   3) Let 
            LIST  = &quot; ,bob,   carol,, ted,  alice&quot; 
            DELIM = &quot;,&quot; 
            nmax  = 4 

      Then 
            ITEMS[0] = &quot;&quot; 
            ITEMS[1] = &quot;bob&quot; 
            ITEMS[2] = &quot;carol&quot; 
            ITEMS[3] = &quot;&quot; 
</PRE>
<h4><a name="Restrictions">Restrictions</a></h4>
<PRE>
 
   None. 
 </PRE>
<h4><a name="Literature_References">Literature_References</a></h4>
<PRE>
 
   None. 
 </PRE>
<h4><a name="Author_and_Institution">Author_and_Institution</a></h4>
<PRE>
   N.J. Bachman    (JPL) 
   H.A. Neilan     (JPL) 
   I.M. Underwood  (JPL) 
 </PRE>
<h4><a name="Version">Version</a></h4>
<PRE>
   -CSPICE Version 2.2.0, 18-MAY-2001 (WLT)

      Added a cast to (char *) in the call to  F2C_ConvertTrStrArr

   -CSPICE Version 2.1.0, 20-APR-2000 (NJB)
   
      Bug fix:  set n to zero for nmax &lt; 1.
      
   -CSPICE Version 2.0.0, 25-MAR-2000 (NJB)
   
      Updated header to accurately describe treatment of null tokens.
      Updated code to handle the case of an empty input string or 
      nmax &lt; 1.
      
      Changed typedef SpiceVoid to void.

   -CSPICE Version 1.0.0, 09-FEB-1998 (NJB)
</PRE>
<h4><a name="Index_Entries">Index_Entries</a></h4>
<PRE>
 
   parse items from a list 
 </PRE>
<h4>Link to routine lparse_c source file <a href='../../../src/cspice/lparse_c.c'>lparse_c.c</a> </h4>

      </td>
    </tr>
  </tbody>
</table>

   <pre>Wed Jun  9 13:05:25 2010</pre>

</body>
</html>

